﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using METU_CMT.Business;

namespace METU_CMT
{
    public partial class EditProfileScreen : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                BindUserInfo();
            }
        }

        protected void OnBtnAddClicked(object sender, EventArgs e)
        {
            StringBuilder _dosyaAdi = new StringBuilder();
            DateTime _now = DateTime.Now;

            if (string.IsNullOrEmpty(fuNewSchedule.FileName))
            {
                //ShowAlert("Lütfen eklemek istediğiniz dosyayı seçiniz...");
                return;
            }
            HttpPostedFile _myFile = fuNewSchedule.PostedFile;
            string _fileExt = Path.GetExtension(fuNewSchedule.FileName);

            if (string.IsNullOrEmpty(_fileExt))
            {
                //ShowAlert("Yüklemek istediğiniz dosyanın uzantısı bulunamadı.");
                return;
            }

            if (_myFile.ContentLength > 10500000)
            {
                //ShowAlert("Yükleyeceğiniz dosyanın boyutu 10 MB sınırını geçmemelidir.");
                return;
            }
            if (!_fileExt.ToLower().Equals(".jpg") && !_fileExt.ToLower().Equals(".bmp") &&
                !_fileExt.ToLower().Equals(".png") && !_fileExt.ToLower().Equals(".jpeg"))
            {
                //ShowAlert(
                //    "Yalnızca Word, Excel, PowerPoint, PDF, Resim ve Video tipinde dosyalar yükleyebilirsiniz.");
                return;
            }
            if (_dosyaAdi.ToString().Contains("$"))
            {
                //TODO: Log: file name cannot contain $
                return;
            }

            _dosyaAdi.Append(
                Path.GetFileNameWithoutExtension(fuNewSchedule.FileName));
            _dosyaAdi.Append("$" + EntityFactory.User.UserId + "_");
            _dosyaAdi.Append(_now.ToString("yyyyMMddhhmmss"));
            StringBuilder _savePath =
                new StringBuilder(Server.MapPath("~/UserImages/") + _dosyaAdi + _fileExt);

            fuNewSchedule.PostedFile.SaveAs(_savePath.ToString());

            fuNewSchedule.Dispose();

            imgProfilePicture.ImageUrl = "~/UserImages/" + _dosyaAdi + _fileExt;

            EntityFactory.User.InsertImage("~/UserImages/" +_dosyaAdi + _fileExt);
        }

        protected void onBtnSaveClicked(object sender, EventArgs e)
        {
            EntityFactory.User.SetProfileInfo(txtUserName.Text, txtNewPassword.Text, txtEmail.Text,
                                                 imgProfilePicture.ImageUrl);
            EntityFactory.User.GoToProfilePage(Response);
        }

        void BindUserInfo()
        {
            txtUserName.Text = EntityFactory.User.UserName;
            txtSurname.Text = EntityFactory.User.Surname;
            txtNewPassword.Text = EntityFactory.User.PassWord;
            txtName.Text = EntityFactory.User.Name;
            txtEmail.Text = EntityFactory.User.Email;
        }
    }
}